<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
    <th:block th:include="include :: header('凭证头列表')" />
</head>
<body class="gray-bg">
     <div class="container-div">
        <div class="row">
            <div class="col-sm-12 search-collapse">
                <form id="formId">
                    <div class="select-list">
                        <ul>
                           <li>
								 凭证类型：<select name="pzzt" >
									<option value="">全部</option>
									<option value="3">记账</option>
								</select>
							</li>
                            <li>
								<label>核算年度：</label>
								<select name="nd" id="nd">
									<option th:each="nd : ${ndlist}" th:text="${nd}" th:value="${nd}"> th:selected="${nd==year}"> </option>
								</select>
							</li>
                            <li >
								<label>核算期间： </label><select name="yf" id="yf">
								    <option th:each="yf : ${yflist}" th:text="${yf}" th:value="${yf}" th:selected="${yf==term}"></option>
								</select>
							</li>
                            <li>
                                <label style="width:80px">起凭证编号：</label>
                                <input type="text" name="params[spzbh]"/>
                            </li>
                            <li>
                                <label style="width:80px">止凭证编号：</label>
                                <input type="text" name="params[epzbh]"/>
                            </li>
                            <li>
                                <a class="btn btn-primary btn-rounded btn-sm" onclick="searchPre()"><i class="fa fa-search"></i>&nbsp;搜索</a>
                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
                            </li>
                        </ul>
                    </div>
                </form>
            </div>

            <div class="btn-group-sm" id="toolbar" role="group">
                <a class="btn btn-warning" onclick="searchPrint(1)" shiro:hasPermission="system:pzdy:print">
                    <i class="fa fa-download"></i> 打印预览
                </a>
                <a class="btn btn-info" onclick="searchPrint(0)" shiro:hasPermission="system:pzdy:print">
                    <i class="fa fa-download"></i> 打印
                </a>
            </div>
            <div class="col-sm-12 select-table">
                 <table class="table table-hover " id="datalistview">
                 </table>	  
		    </div> 
        </div>
    </div>
    <th:block th:include="include :: footer" />
    <script th:inline="javascript"> 
        var prefix = ctx + "system/pzdy";

        $(function() {
        	var config = {
        	        url: prefix+"/list",
        	        type: "post",
        	        dataType: "json",
        	        data: $('#formId').serialize(),
        	        beforeSend: function () {
        	        	$.modal.loading("正在处理中，请稍后...");
        	        },
        	        success: function(result) {
        	        	$.modal.closeLoading();
        	        	showData(result);
        	        }
        	    };
        	    $.ajax(config);
           
        });
        function showData(result){
        	$("#datalistview").empty(); //清空列表
        	var list=result.rows;
        	var currPage=0;
        	var totalStr="";
			for(var i=0; i<list.length; i++) {
				var pageStr=[];	
				var pzData = list[i];
				var pzts=pzData.srhsPzti;
				var n = (pzts.length%6==0)? (pzts.length/6) : (parseInt(pzts.length/6)+1);
				var jfzje=0;
				var dfzje=0;
				for(var j=0; j<n; j++) {
					currPage++;
					pageStr.push("<P class='normal' >");
					pageStr.push("<TABLE cellPadding=0 width=785 border=0>");
					pageStr.push("<TR>");
					pageStr.push("<TD width=70>&nbsp;</TD>");
					pageStr.push("<TD width=689>");
					pageStr.push("<TABLE cellPadding=0 width=\"100%\" border=0>");
					pageStr.push("<TR>");
					pageStr.push("<TD vAlign=bottom align=middle colSpan=4 height=28 style=\"font-weight:bold;font-size:36px\"><SPAN style=\"font-size: 26px;text-decoration: underline;\">记 帐 凭 证</SPAN> </TD></TR>");
					pageStr.push("<TR>");
					pageStr.push("<TD style=\"FONT-SIZE: 10px\" width=232 height=20>单位名称:"+pzData["dwmc"]+"</TD>");
					pageStr.push("<TD style=\"FONT-SIZE: 10px\" align=middle width=237>凭证日期："+pzData["nd"]+" 年 "+pzData["yf"]+" 月 "+pzData["rq"]+" 日 </TD>");
					pageStr.push("<TD style=\"FONT-SIZE: 10px\" align=right width=231>记帐 字 第 "+pzData["pzbh"]+" 号 第 "+(j+1)+" 张</TD></TR></TABLE>");
					pageStr.push("<TABLE borderColor=#000000 cellSpacing=0 cellPadding=0 width=\"100%\" border=1>");
					pageStr.push("<TR>");
					pageStr.push("<TD align=middle width=181 height=28 class=text_bt><B>摘要</B></TD>");
					pageStr.push("<TD align=middle width=284 class=text_bt><B>核算科目</B></TD>");
					pageStr.push("<TD align=middle width=118 class=text_bt><B>借方金额</B></TD>");
					pageStr.push("<TD align=middle width=118 class=text_bt><B>贷方金额</B></TD></TR>");
					var end=((j+1)*6);
					var stat=(j * 6);
					for(; stat<end; stat++) {
						if (stat < pzts.length ){
							var temp=pzts[stat];
							pageStr.push("<TR>");
							pageStr.push("<TD align=middle width=181 height=28 class=text_pt>"+temp["zy"]+"</TD>");
							pageStr.push("<TD align=middle width=284 class=text_pt>"+temp["kmmc"]+"["+temp["kmdm"]+"]</TD>");
							pageStr.push("<TD align=right width=118 class=text_je>"+((temp["jfje"]!=null&&temp["jfje"]!='0')?formatToMoney(temp["jfje"]):"&nbsp;")+"</TD>");
							pageStr.push("<TD align=right width=118 class=text_je>"+((temp["dfje"]!=null&&temp["dfje"]!='0')?formatToMoney(temp["dfje"]):"&nbsp;")+"</TD></TR>");
							jfzje+=(temp["jfje"]);
							dfzje+=(temp["dfje"]);
						}else{
							pageStr.push("<TR style=\"FONT-WEIGHT: normal; FONT-SIZE: 10px; LINE-HEIGHT: normal; FONT-STYLE: normal; FONT-VARIANT: normal\">");
							pageStr.push("<TD align=middle width=181 height=28>&nbsp;</TD>");
							pageStr.push("<TD align=middle width=284>&nbsp;</TD>");
							pageStr.push("<TD align=middle width=118>&nbsp;</TD>");
							pageStr.push("<TD align=middle width=118>&nbsp;</TD></TR>");
						}
					}
					pageStr.push("<TR>");
					pageStr.push("<TD align=middle colSpan=2 height=28 class=text_bt>合 计</TD>");
					pageStr.push("<TD align=right width=118 class=text_je>"+(formatToMoney(Math.round(jfzje*100)/100))+"</TD>");
					pageStr.push("<TD align=right width=118 class=text_je>"+(formatToMoney(Math.round(dfzje*100)/100))+"</TD></TR></TABLE>");
					pageStr.push("<TABLE cellPadding=0 width=\"100%\" border=0>");
					pageStr.push("<TR>");
					pageStr.push("<TD style=\"FONT-SIZE: 10px\" vAlign=bottom width=115>主管：</TD>");
					pageStr.push("<TD style=\"FONT-SIZE: 10px\" vAlign=bottom width=115>审核记帐："+pzData["sh"]+"</TD>");
					pageStr.push("<TD style=\"FONT-SIZE: 10px\" vAlign=bottom width=112>出纳：</TD>");
					pageStr.push("<TD style=\"FONT-SIZE: 10px\" vAlign=bottom width=116>制单："+pzData["zd"]+"</TD>");
					pageStr.push("<TD style=\"FONT-SIZE: 10px\" vAlign=bottom width=112>领款人：</TD>");
					pageStr.push("<TD style=\"FONT-SIZE: 10px\" vAlign=bottom align=right width=118>附单据："+pzData["fjzs"]+" 张</TD></TR>");
					pageStr.push("<TR>");
					pageStr.push("<TD height=38>&nbsp;</TD></TR></TABLE></TD>");
					pageStr.push("<TD width=52>&nbsp;</TD></TR></TABLE>");
					pageStr.push("</P>");
				}
				totalStr +=  pageStr.join("");
			}
        	$("#datalistview").append(totalStr);
        	
        }
		function searchPre() {
			var config = {
        	        url: prefix+"/list",
        	        type: "post",
        	        dataType: "json",
        	        data: $('#formId').serialize(),
        	        beforeSend: function () {
        	        	$.modal.loading("正在处理中，请稍后...");
        	        },
        	        success: function(result) {
        	        	$.modal.closeLoading();
        	        	showData(result);
        	        }
        	    };
        	    $.ajax(config);
		}
		function formatToMoney(s,format){
			var integer = "";
			var decimal = "";
			var sign = "";
			if(typeof(s)!="string"){
				s = ""+s;
			}
			if(s.charAt(0)=='-'){
				s = s.substring(1);
				sign = '-';
			}
			s = ""+s;
			
			if(s.indexOf(".")>=0){
				integer = s.substring(0,s.indexOf("."));
				decimal = s.substring(s.indexOf(".")+1,s.length);
			}else{
				integer = s;
			}
			if(integer == "")
				integer = "0";

			var tmp = null;
			var zAmount = 2;
			var finish = false;
			if(format!=null && format!="undefined"){
				finish = true;
				zAmount=0;
				var p = format.indexOf(".");
				for(var i=p;i<format.length;i++){
					var ch = format.charAt(i);
					if(ch=='0'){
						zAmount++;
					}else if(ch=='#'){
						finish = false;
					}
				}
			}
			

			if(finish==true && decimal.length>zAmount){
				var keep = decimal.substring(0,zAmount);		
				var rest = decimal.substring(zAmount);
				
				if(rest.charAt(0)>='5'){
					tmp = parseFloat(integer+"."+keep) + (11 / (tenMultiple(zAmount+1)));
				}else{
					tmp =  parseFloat(integer+"."+keep);
				}
				
				
				s = ""+tmp;
				if(s.indexOf(".")>=0){
					integer = s.substring(0,s.indexOf("."));
					decimal = s.substring(s.indexOf(".")+1,s.length);
				}else{
					integer = s;
					decimal = "00";
				}
				decimal = decimal.substring(0,zAmount);
			}
			if(zAmount>0){
				for(var i=0;i<zAmount;i++){
					if(decimal.length<(i+1)){
						decimal = decimal+'0';
					}
				}
			}
			
			var result = "";
			var rs = [];
			if(integer.length>3){
				var j=0;
				for(var i=integer.length-1;i>=0;i--){
					if((j%3==0)&&j>0){
						rs[rs.length] = ",";
					}
					rs[rs.length] = integer.charAt(i);
					j++;
				}
				var r = [];
				for(var i=rs.length-1;i>=0;i--){
					r[r.length] = rs[i];
				}
				result = r.join("");
			}else{
				result = integer ;
			}
			if(zAmount>0){
				result = result + "."+decimal;
			}
			return sign + result;
		}
		
		function searchPrint(isPrintView) {
			var config = {
        	        url: prefix+"/printlist",
        	        type: "post",
        	        dataType: "json",
        	        data: $('#formId').serialize(),
        	        beforeSend: function () {
        	        	$.modal.loading("正在处理中，请稍后...");
        	        },
        	        success: function(result) {
        	        	$.modal.closeLoading();
        	        	printPzxx(isPrintView,result.rows);
        	        }
        	    };
        	    $.ajax(config);
		}
		
		function printPzxx(isPrintView,vdata){
			var Field = [
				{"type": "ftInteger", "name": "pzbh","size": 255,"required": true},
				{"type": "ftInteger", "name": "xh","size": 255,"required": false},
				{"type": "ftString", "name": "zy","size": 255,"required": false},
				{"type": "ftString", "name": "kmmc","size": 255,"required": false},
				{"type": "ftCurrency", "name": "dfje","size": 20,"required": false},
				{"type": "ftCurrency", "name": "jfje","size": 20,"required": false},
				{"type": "ftString", "name": "sh","size": 255,"required": false},
				{"type": "ftString", "name": "zd","size": 255,"required": false},
				{"type": "ftString", "name": "pzrq","size": 255,"required": false},
				{"type": "ftInteger", "name": "fjzs","size": 255,"required": false},
				{"type": "ftString", "name": "dwmc","size": 255,"required": false},
			];
			var msg = '{'
					+'"method":"' + 'printreport' +'"'  /*报表类型 gridreport fastreport reportmachine 为空 将默认为gridreport  */
					+',"ReportType":"' + 'gridreport' +'"'  /*报表类型 gridreport fastreport reportmachine 为空 将默认为gridreport  */
					+',"ReportName":"' + 'pzxx.grf' +'"' /*报表文件名 测试报表 */
					+',"ReportVersion":"' + '1' +'"' /*可选。报表版本, 为空则默认1  如果本地报表的版本过低 将从 ReportUrl 地址进行下载更新*/
					+',"ReportUrl":"' + '' +'"' /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/
					+',"Copies":"' + '1' +'"' /*可选。打印份数，支持指定打印份数。默认1份,如果为零,不打印,只返回报表生成的pdf,jpg等文件*/
					+',"PrinterName":"'+ '' +'"' /*可选。指定打印机，为空的话 使用默认打印机, 请在 控制面板 -> 设备和打印机 中查看您的打印机的名称 */
					+',"PrintOffsetX":"' + '0' +'"' /*可选。打印右偏移，单位厘米。报表的水平方向上的偏移量，向右为正，向左为负。*/
					+',"PrintOffsetY":"' + '0' +'"' /*可选。打印下偏移，单位厘米。 报表的垂直方向上的偏移量，向下为正，向上为负。*/
					+',"Preview":"' + isPrintView +'"'  /*可选。是否预览，和主界面设置的效果一样 为空默认不预览,   0：不预览，1：预览(弹出导出的pdf,jpg等文件)。*/
					+',"token":"' + 'aa' +'"' /*可选。只要token值在列表中 方可打印*/
					+',"taskId":"' + '1234567' +'"' /*可选。多个打印任务同时打印时，根据该id确定返回的是哪个打印任务。 */
					+',"exportfilename":"' + '' +'"'  /*可选。自定义 导出 文件名称 为空 或者 自定义名称 如 test */
					+',"exportfiletype":"' + '' +'"'  /*可选。自定义 导出 文件格式 为空 或者 自定义名称 如 pdf  */
					+',"Field": '+ JSON.stringify(Field) 
					+',"Data":' + JSON.stringify(vdata)
					+ '}';
				jQuery.support.cors = true;         //写到$.ajax $.get $.post 前面 解决 jQuery.Ajax IE8,9 无效（CORS跨域）								
				$.ajax({
			        async : false, //循环打印时,　async 必须设置为 false，则所有的请求均为同步请求，在没有返回值之前，同步请求将锁住浏览器，用户其它操作必须等待请求完成才可以执行。
			        url : "http://127.0.0.1:12345/",
			        type : "POST",
			        contentType: "application/x-www-form-urlencoded", //要这样设置  
			        //contentType: "application/json", //错误方式
			        dataType : "json", //设置为 json 格式
			        data : msg,
					beforeSend: function (XMLHttpRequest) {
						 // beforeSend 函数里 不允许添加任何 东西	
			             //XMLHttpRequest.setRequestHeader("token", 'abcd1234'); //不允许 使用jQuery发送AJAX请求时在header中添加Token
			        },
			        success: function(data){
						console.log(JSON.stringify(data));			
						if(data.status=="ok"){
							alert("打印成功:"+data.data);				
						}else{
							alert("打印失败:"+data.data);
						}
			        },
			        error: function(data){
			            //console.log(status, response);
						console.log(JSON.stringify(data));
						alert("连接HttpPrinter失败:"+JSON.stringify(data));
			        }
			    });	  

			
			
			
			
			
			
		}
    </script>
</body>
</html>